// pages/video/video.js
import request from '../../utils/request'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    videoGroupList: [], // 导航标签数据
    currentNav: '', // 当前选中的标签
    videoList: [], // 视频数据
    playVideo: '', // 当前播放视频的id
    videoId: '', // 视频的标识
    videoUpdateTime: {}, //记录视频播放事件
    isTriggered: false, // 标识下拉刷新是否被触发
  },

  // 去搜索也
  toSearchPage(){
    wx.navigateTo({
      url: '/pages/search/search',
    })
  },
  // 上拉触底回调
  handlerToLower(event) {
    console.log("scroll-view 上拉触底 ");
    // 数据分页：1. 后端分页 2. 前端分页
    // 这里做加的
    this.getVideoListData(this.data.currentNav, true)
  },
  // 下拉刷新回调
  hanldeRefresher(event) {
    console.log("scroll-view 下拉刷新");
    this.getVideoListData(this.data.currentNav)
  },
  // 点击播放/恢复播放
  handlePlay(event) {

    // 停止上一个视频
    // debugger
    // let playVideo = this.data.playVideo;
    // if (playVideo) {
    //   let videoContext = wx.createVideoContext(playVideo)
    //   videoContext.stop();
    // }
    // // 改变值
    // this.setData({
    //   playVideo: event.target.id
    // })


    // 老师的写法（很漂亮）
    let videoId = event.currentTarget.id
    // this.videoContext && this.data.videoId != videoId && this.videoContext.stop()
    this.setData({
      videoId
    })
    this.videoContext = wx.createVideoContext(videoId)
    // this.videoContext.id = videoId
    let {
      videoUpdateTime
    } = this.data;
    // 定到位指定时长
    videoUpdateTime[videoId] && this.videoContext.seek(videoUpdateTime[videoId])
    this.videoContext.play()


  },
  handleTimeUpdate(event) {
    let {
      videoUpdateTime
    } = this.data;
    videoUpdateTime[event.currentTarget.id] = event.detail.currentTime
    this.setData({
      videoUpdateTime
    })
  },

  handlePlayEnd(event) {
    let {
      videoUpdateTime
    } = this.data;
    delete videoUpdateTime[event.currentTarget.id]
    this.setData({
      videoUpdateTime
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 获取导航数据
    this.getVideoGroupListData()
  },
  async getVideoGroupListData() {
    let {
      data
    } = await request('/video/group/list');
    this.setData({
      videoGroupList: data.slice(0, 14),
      currentNav: data[0].id
    })
    // 获取视频列表数据
    this.getVideoListData(this.data.currentNav)

  },
  // 获取视频列表数据
  async getVideoListData(id, flag) {
    let {
      datas
    } = await request('/video/group', {
      id
    });
    // 关闭消息加载中提示框
    wx.hideLoading()
    let index = 0;
    let videoList = datas.map(item => {
      item.index = index++;
      return item
    })
    if (flag) {
      let rawVideoList = this.data.videoList
      rawVideoList.push(...videoList)
      videoList = rawVideoList;
    }
    this.setData({
      videoList,
      isTriggered: false
    })

  },
  // 导航的点击事件
  handlActive(event) {
    this.setData({
      currentNav: event.target.id,
      videoList: [] // 清空数据
    })
    // 显示正在加载
    wx.showLoading({
      title: '正在加载',
    })
    this.getVideoListData(this.data.currentNav)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    console.log("页面下拉动作");
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    console.log("页面上拉动作");
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function ({
    from
  }) {

    if (from === 'menu') {
      return {
        title: '来自menu的转发',
        page: "/pages/index/index",
        imageUrl: '/static/images/nvsheng.jpg'
      }
    }
    return {
      title: '来自button的转发',
      page: "/pages/index/index",
      imageUrl: '/static/images/nvsheng.jpg'
    }
  }
})